home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-28 | 3.9 KB | 140 lines |
- 10 'INVEE - inverted vee antenna dimensions - 20 DEC 93 rev. 27 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,1
- 50 UL$=STRING$(80,205)
- 60 U$="###.###"
- 70 V$="####.#"
- 80 PI=3.14159
- 90 T$=" INVERTED VEE ANTENNA DIMENSIONS"+SPACE$(24)+"by George Murphy VE3ERP "
- 100 '
- 110 '.....start
- 120 CLS:T=0:RA=0:HT=0:AN=0:MA=0:SU=0:AA=0:BB=0
- 130 ROW=3
- 140 COL=39:X=1
- 150 LOCATE ROW,COL:PRINT "/OPEN\" 'draw apex
- 160 '.....draw antenna
- 170 FOR Z=ROW TO ROW+15
- 180 X=X+2
- 190 IF X<=28 THEN PRINT TAB(COL+1-X);"/";
- 200 IF X>28 THEN PRINT TAB(COL+1-28);"OPEN";
- 210 PRINT TAB(COL+1);"OPEN";
- 220 IF X>28 THEN PRINT TAB(COL+1+28);"OPEN";
- 230 IF X<=28 THEN PRINT TAB(COL+1+X);"\"
- 240 NEXT Z
- 250 '.....draw ground line
- 260 PRINT TAB(6);STRING$(69,196)
- 270 LOCATE Z+1,COL+1:PRINT "USR"
- 280 LOCATE Z+1,COL-27:PRINT "USR"
- 290 LOCATE Z+1,COL+29:PRINT "USR"
- 300 '.....draw dimension lines
- 310 LOCATE Z+3,COL-27:PRINT "CALL<";STRING$(53,"SOUND");">CALL"
- 320 LOCATE Z+3,COL:PRINT ">CALL<"
- 330 LOCATE Z+3,COL-14:PRINT " B "
- 340 LOCATE Z+3,COL+14:PRINT " B "
- 350 LOCATE Z+4,COL-27:PRINT "CALL<";STRING$(53,"SOUND");">CALL"
- 360 LOCATE Z+4,COL:PRINT " A "
- 370 '.....add text
- 380 LOCATE ROW+2,COL-3:PRINT"DEFSNG-ANGLE-DEFDBL"
- 390 LOCATE ROW+6,COL-16:PRINT "RADIATOR"
- 400 LOCATE ROW+6,COL+10:PRINT "RADIATOR"
- 410 LOCATE ROW+8,COL-1:PRINT "MAST"
- 420 LOCATE ROW+15,COL-30:PRINT "SUPPORT"
- 430 LOCATE ROW+15,COL+26:PRINT "SUPPORT"
- 440 LOCATE 24,10:COLOR 15,2
- 450 PRINT " ENTER ALL DIMENSIONS IN SAME UNITS (e.g. metres/feet, etc.) ";
- 460 LOCATE 25,10:COLOR 15,2
- 470 PRINT " RESULTING CALCULATED DIMENSIONS WILL BE IN THE SAME UNITS ";
- 480 COLOR 7,0
- 490 LOCATE 1,22
- 500 COLOR 0,7:PRINT " Press 1 to continue or 0 to EXIT.....":COLOR 7,0
- 510 Z$=INKEY$:IF Z$=""THEN 510
- 520 IF Z$="0"THEN CLS:RUN EX$
- 530 IF Z$="1"THEN 550
- 540 GOTO 510
- 550 LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
- 560 PRINT " If you don't know this value then press <ENTER>. If you DO know ";
- 570 PRINT "then"
- 580 '
- 590 '.....input data
- 600 LOCATE 2
- 610 COLOR 0,7
- 620 IF RA=0 THEN INPUT" ENTER: Length of radiators..";RA:GOSUB 700
- 630 IF AN=0 THEN INPUT" ENTER: Apex angle (degrees) ";AN:T=AN/2*PI/180:GOSUB 700
- 640 IF MA=0 THEN INPUT" ENTER: Height of mast.......";MA:GOSUB 700
- 650 IF SU=0 THEN INPUT" ENTER: Height of supports...";SU:GOSUB 700
- 660 IF AA=0 THEN INPUT" ENTER: Dimension A..........";AA:BB=AA/2:GOSUB 700
- 670 IF BB=0 THEN INPUT" ENTER: Dimension B..........";BB:AA=BB*2:GOSUB 700
- 680 GOTO 620
- 690 '
- 700 '.....calculations
- 710 LOCATE 2:PRINT STRING$(80,219);
- 720 IF HT=0 THEN IF MA*SU THEN HT=MA-SU
- 730 FOR I=1 TO 5
- 740 IF RA THEN 780
- 750 IF HT*BB THEN RA=SQR(HT^2+BB^2):GOTO 780
- 760 IF T*BB THEN RA=BB/SIN(T):GOTO 780
- 770 IF T*HT THEN RA=HT/COS(T):GOTO 780
- 780 IF HT THEN 820
- 790 IF RA*BB THEN HT=SQR(RA^2-BB^2):GOTO 820
- 800 IF T*BB THEN HT=BB/TAN(T):GOTO 820
- 810 IF T*RA THEN HT=RA*COS(T):GOTO 820
- 820 IF AN THEN 880
- 830 IF BB*HT THEN T=ATN(BB/HT):GOTO 860
- 840 IF RA*BB THEN F=BB/RA:T=ATN(F/SQR(-F*F+1)):GOTO 860
- 850 IF RA*HT THEN G=HT/RA:T=-(ATN(G/SQR(-G*G+1)))+PI/2:GOTO 860
- 860 IF T>PI/2 THEN T=T-PI/2:GOTO 860
- 870 AN=T*2*180/PI:IF AN<0 THEN AN=360+AN
- 880 IF MA THEN 900
- 890 IF HT*SU THEN MA=HT+SU:GOTO 900
- 900 IF SU THEN 940
- 910 IF MA*HT THEN SU=MA-HT
- 920 IF SU<0 THEN MA=HT:SU=9.999E-06
- 930 GOTO 940
- 940 IF BB THEN 960
- 950 IF RA*HT THEN BB=SQR(RA^2-HT^2):AA=2*BB:GOTO 1020
- 960 IF MA*SU THEN IF MA=SU THEN AN=180:MA=MA+9.9999E-05:SU=SU-9.9999E-05
- 970 IF AN<>180 THEN 1020
- 980 IF RA THEN BB=RA:AA=2*RA
- 990 IF BB THEN RA=BB:AA=2*BB
- 1000 IF AA THEN BB=AA/2:AA=2*BB
- 1010 '
- 1020 'COLOR 0,7
- 1030 IF RA THEN LOCATE ROW+6,16:PRINT " RADIATOR ";USING U$;RA;:PRINT " Lg."
- 1040 IF RA THEN LOCATE ROW+6,44:PRINT " RADIATOR ";USING U$;RA;:PRINT " Lg."
- 1050 IF AN THEN LOCATE ROW+2,36:PRINT "DEFSNG-ANGLE-DEFDBL"
- 1060 IF AN THEN LOCATE ROW+3,36:PRINT " ";USING V$;AN;:PRINT "<UNK! {00F8}> "
- 1070 IF MA THEN LOCATE ROW+8,31:PRINT " MAST ";USING U$;MA;:PRINT " High "
- 1080 IF SU THEN LOCATE ROW+15,2:PRINT " SUPPORT";USING U$;SU;:PRINT " High "
- 1090 IF SU THEN LOCATE ROW+15,58:PRINT " SUPPORT";USING U$;SU;:PRINT " High "
- 1100 IF AA THEN LOCATE ROW+20,36:PRINT " ";USING U$;AA;:PRINT " "
- 1110 IF BB THEN LOCATE ROW+19,22:PRINT " ";USING U$;BB;:PRINT " "
- 1120 IF BB THEN LOCATE ROW+19,50:PRINT " ";USING U$;BB;:PRINT " "
- 1130 NEXT I
- 1140 LOCATE 2:PRINT STRING$(80,219):LOCATE 2:COLOR 0,7
- 1150 IF RA*AN*MA*SU*BB*AA THEN GOSUB 1180:CLS:RUN EX$ 'EXIT
- 1160 RETURN
- 1170 '
- 1180 LOCATE 1
- 1190 COLOR 15,2:PRINT T$;
- 1200 COLOR 1,0:PRINT STRING$(80,223);
- 1210 LOCATE 24
- 1220 COLOR 7,0:PRINT STRING$(80,32);
- 1230 GOSUB 1270
- 1240 GOTO 110 'start
- 1250 END
- 1260 '
- 1270 'HARDCOPY
- 1280 GOSUB 1390:LOCATE 25,2:COLOR 14,6
- 1290 PRINT " Press 1 to print screen, 2 to print screen & ";
- 1300 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 1310 Z$=INKEY$:IF Z$="3"THEN GOSUB 1390:RETURN
- 1320 IF Z$="1"OR Z$="2"THEN GOSUB 1390:GOTO 1340
- 1330 GOTO 1310
- 1340 FOR QX=1 TO 24:FOR QY=1 TO 80
- 1350 LPRINT CHR$(SCREEN(QX,QY));
- 1360 NEXT QY:NEXT QX
- 1370 IF Z$="2"THEN LPRINT CHR$(12)
- 1380 GOTO 1280
- 1390 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-